package com.zy.je.common.mybatis.ext.util;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.je.common.core.utils.CheckUtil;
import com.zy.je.common.core.utils.collect.ListUtil;
import com.zy.je.common.mybatis.ext.model.IPageQuery;

import java.util.List;

/**
 * @author zy
 */
public class PageUtil {
    /**
     * 转换成新的分页对象
     *
     * @param pageData
     * @param dataList
     * @param <R>
     * @param <P>
     * @return
     */
    public static <R, P> Page<R> convertPage(Page<P> pageData, List<R> dataList) {
        Page<R> retPage = new Page<>();
        retPage.setCurrent(pageData.getPages());
        retPage.setSize(pageData.getSize());
        retPage.setTotal(pageData.getTotal());
        retPage.setPages(pageData.getPages());
        retPage.setRecords(dataList);
        return retPage;
    }

    public static <T> Page<T> buildEmptyPage(IPageQuery dto) {
        Page<T> result = new Page<T>();
        result.setCurrent(1);
        result.setSize(10);
        result.setTotal(0L);
        result.setPages(0L);
        result.setRecords(ListUtil.newArrayList());

        if (!CheckUtil.isBlank(dto)) {
            Page<Object> page = dto.buildPage();
            result.setCurrent(page.getCurrent());
            result.setSize(page.getSize());
        }
        return result;
    }

}
